#ifndef DSPSIMULATOR_MVK_H
#define DSPSIMULATOR_MVK_H

#include <dspSimulator/targetMachine/dspInstruction.h>

class MVK : public DspInstruction {
public:
    explicit MVK(u64 address = 0, u64 baseCycle = 0) :
            DspInstruction("MVK", address, baseCycle, 0) {}

    MVK(const MVK &mvk) = default;

    ~MVK() override = default;

    std::shared_ptr<Instruction> decode(std::shared_ptr<InstInfo> instInfo, u64 baseCycle) override;

    void generateIR(std::shared_ptr<IRGenerator> irGenerator,llvm::Function *function, RegCopy &regCopy) override;

    void generateIRInS(std::shared_ptr<IRGenerator> irGenerator,llvm::Function *function, RegCopy &regCopy);

    std::string toString() override;
};

#endif //DSPSIMULATOR_MVK_H

